Modern computing devices are often able to be customized and configured by users. Such customizing may involve installing and uninstalling executable applications, arranging application tiles or icons within a graphical user interface such as an application launcher (or other type of graphical user shell or application), changing the appearance of user interface elements, and so forth. In addition, an individual person may have a variety of computing devices that the individual regularly uses. Sometimes a user may install and use some of the same application programs (i.e., applications that have highly similar user interface and algorithms) on the user's computing devices. In addition, the computing devices may have hardware or software incompatibilities that necessitate installing different revisions or platform-specific versions of the same applications, perhaps only on partially intersecting subsets of the user's computing devices.
As the inventors have observed, a user may invest time in configuring one computing device among a variety of computing devices controlled by the user. For the user to create parallel experiences when using each of their computing devices, that invested time may be invested for each of the user's computing devices. This duplicative customizing for different devices can be burdensome to the user. For example, a process of manually installing applications and customizing the layout and appearance of a user interface may need to be repeated across a mix of computing devices. Furthermore, perhaps due to hardware or software limitations of platforms or applications, a user's preferences and requirements may be only partially implemented, to varying degrees, on some of the user's computing devices. This may task the user with manually keeping track of what experience-synchronizing tasks are needed for which devices.
In view of these inventor observations, techniques related to synchronizing user configurations among the user's computing devices are discussed below.